unit IUIngredProduto;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBTables, StdCtrls, Buttons, DBCtrls;

type
  TFormIUIngredProduto = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    DBLookupComboBoxIngrediente: TDBLookupComboBox;
    EditQuantidade: TEdit;
    BitBtn2: TBitBtn;
    QueryIngrediente: TQuery;
    DataSource1: TDataSource;
    BitBtn1: TBitBtn;
    Label3: TLabel;
    EditQuantidadeBroto: TEdit;
    Label4: TLabel;
    EditQuantidadeCalzone: TEdit;
    Label5: TLabel;
    EditQuantidadeFrita: TEdit;
    procedure BitBtn1Click(Sender: TObject);
    procedure ditQuantidadeKeyPress(Sender: TObject; var Key: Char);
    procedure FormActivate(Sender: TObject);
    procedure EditQuantidadeClick(Sender: TObject);
    procedure EditQuantidadeBrotoClick(Sender: TObject);
    procedure EditQuantidadeCalzoneClick(Sender: TObject);
    procedure EditQuantidadeFritaClick(Sender: TObject);
    procedure EditQuantidadeExit(Sender: TObject);
    procedure EditQuantidadeBrotoExit(Sender: TObject);
    procedure EditQuantidadeCalzoneExit(Sender: TObject);
    procedure EditQuantidadeFritaExit(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
    xId:integer;
    xIdProduto:integer;
    xIdIngrediente:integer;
  end;

var
  FormIUIngredProduto: TFormIUIngredProduto;
  sql:string;

implementation

uses ListaIngredProdutos,Principal;

{$R *.dfm}

procedure TFormIUIngredProduto.BitBtn1Click(Sender: TObject);
begin
 if xId = 0 then
    begin

        sql := 'insert into produto_item_estoque (id_produto,id_item_estoque,quantidade,quantidade_broto,quantidade_calzone,quantidade_frita,data) ' +
              'values (' + IntToStr(xIdProduto) + ','
                         + IntToStr(DBLookupComboBoxIngrediente.KeyValue)
                         + ',' + StringReplace(EditQuantidade.Text, ',', '.',[rfReplaceAll, rfIgnoreCase])
                         + ',' + StringReplace(EditQuantidadeBroto.Text, ',', '.',[rfReplaceAll, rfIgnoreCase])
                         + ',' + StringReplace(EditQuantidadeCalzone.Text, ',', '.',[rfReplaceAll, rfIgnoreCase])
                         + ',' + StringReplace(EditQuantidadeFrita.Text, ',', '.',[rfReplaceAll, rfIgnoreCase])
                         + ',''' + FormPrincipal.FormataData(now,2)+''')';

        FormPrincipal.QueryAtualiza.SQL.Clear;
        FormPrincipal.QueryAtualiza.SQL.Add(sql);
        FormPrincipal.QueryAtualiza.ExecSQL;
    end
    else
    begin
        sql := 'update produto_item_estoque set id_item_estoque = ' + IntToStr(DBLookupComboBoxIngrediente.KeyValue)
                                                                    + ',quantidade = ' + StringReplace(EditQuantidade.Text, ',', '.',[rfReplaceAll, rfIgnoreCase])
                                                                    + ',quantidade_broto = ' + StringReplace(EditQuantidadeBroto.Text, ',', '.',[rfReplaceAll, rfIgnoreCase])
                                                                    + ',quantidade_calzone = ' + StringReplace(EditQuantidadeCalzone.Text, ',', '.',[rfReplaceAll, rfIgnoreCase])
                                                                    + ',quantidade_frita = ' + StringReplace(EditQuantidadeFrita.Text, ',', '.',[rfReplaceAll, rfIgnoreCase])
                                                                    + ' where id = ' + IntToStr(xId);

        FormPrincipal.QueryAtualiza.SQL.Clear;
        FormPrincipal.QueryAtualiza.SQL.Add(sql);
        FormPrincipal.QueryAtualiza.ExecSQL;
    end;
end;


procedure TFormIUIngredProduto.ditQuantidadeKeyPress(Sender: TObject; var Key: Char);
begin
    if not(key in ['0'..'9','.',',',#8,#13]) then
       key := #0;

    if key in [',','.'] then
       key := decimalseparator;
end;

procedure TFormIUIngredProduto.FormActivate(Sender: TObject);
begin
    QueryIngrediente.Open;

    if xId <> 0 then
    begin
       DBLookupComboBoxIngrediente.KeyValue := xIdIngrediente;
       DBLookupComboBoxIngrediente.Enabled := false;
       EditQuantidade.Text := formatfloat('###,###,##0.000', FormListaIngredProdutos.QueryIngrediente.FieldByName('quantidade').AsFloat);
       EditQuantidadeBroto.Text := formatfloat('###,###,##0.000', FormListaIngredProdutos.QueryIngrediente.FieldByName('quantidade_broto').AsFloat);
       EditQuantidadeCalzone.Text := formatfloat('###,###,##0.000', FormListaIngredProdutos.QueryIngrediente.FieldByName('quantidade_calzone').AsFloat);
       EditQuantidadeFrita.Text := formatfloat('###,###,##0.000', FormListaIngredProdutos.QueryIngrediente.FieldByName('quantidade_frita').AsFloat);



    end
    else
    begin
      sql := 'SELECT * from item_estoque where id not in (select id_item_estoque from produto_item_estoque where id_produto = '+IntToStr(xIdProduto)+') order by nome';
       QueryIngrediente.SQL.Clear;
       QueryIngrediente.SQL.Add(sql);
       QueryIngrediente.Close;
       QueryIngrediente.Open;
    end;
end;

procedure TFormIUIngredProduto.EditQuantidadeClick(Sender: TObject);
begin

  EditQuantidade.SelStart := 0;
  EditQuantidade.SelLength := Length(EditQuantidade.Text);
end;

procedure TFormIUIngredProduto.EditQuantidadeBrotoClick(Sender: TObject);
begin
   EditQuantidadeBroto.SelStart := 0;
   EditQuantidadeBroto.SelLength := Length(EditQuantidadeBroto.Text);
end;

procedure TFormIUIngredProduto.EditQuantidadeCalzoneClick(Sender: TObject);
begin
   EditQuantidadeCalzone.SelStart := 0;
   EditQuantidadeCalzone.SelLength := Length(EditQuantidadeCalzone.Text);
end;

procedure TFormIUIngredProduto.EditQuantidadeFritaClick(
  Sender: TObject);
begin
   EditQuantidadeFrita.SelStart := 0;
   EditQuantidadeFrita.SelLength := Length(EditQuantidadeFrita.Text);
end;

procedure TFormIUIngredProduto.EditQuantidadeExit(Sender: TObject);
begin
   if Trim(EditQuantidade.Text) = '' then
      EditQuantidade.Text := '0';
end;

procedure TFormIUIngredProduto.EditQuantidadeBrotoExit(Sender: TObject);
begin
   if Trim(EditQuantidadeBroto.Text) = '' then
      EditQuantidadeBroto.Text := '0';
end;

procedure TFormIUIngredProduto.EditQuantidadeCalzoneExit(Sender: TObject);
begin
   if Trim(EditQuantidadeCalzone.Text) = '' then
      EditQuantidadeCalzone.Text := '0';

      
end;

procedure TFormIUIngredProduto.EditQuantidadeFritaExit(Sender: TObject);
begin
   if Trim(EditQuantidadeFrita.Text) = '' then
      EditQuantidadeFrita.Text := '0';
end;

end.

